package comptadub

import java.text.SimpleDateFormat

class VirementMensuelJob {

    def membreService
    def compteService

    static triggers = {
		cron name: 'virement', cronExpression: "0 0 23 2 * ?"
		//cron name: 'virement', startDelay: 10000, cronExpression: "0 /1 * * * ?"
    }

    def execute() {
        def prixMois = Parametre.findByNom("loyer_par_mois").valeur.toFloat()

        // Sélection des membres admin et sci
        def query = {
            type{
                or {
                    eq("code", "admin")
                    eq("code", "sci")
                }
            }
        }
        def criteria = Membre.createCriteria()
        def listMembre = criteria.list(query)

        listMembre.each {
			if (it.virement) {
	            def virement = new LigneCompte(membre:it, credit:prixMois)
				
				def dateFormat = new SimpleDateFormat("MMMM")
				virement.objet = "Virement mensuel"
	        	virement.commentaire = "Virement automatique pour le mois de " + dateFormat.format(virement.date)
	            
	            compteService.definirObjet(virement)
	            membreService.calculerSolde(it.id)
	            virement.save()
			}
        }
    }
}
